Page loading performance, also known as front-end performance, refers to how quickly a web page and all its components (CSS, JS, images) load. It is important for Drupal sites because users expect fast sites and Drupal powers many large, international sites. The document discusses tools for measuring performance like YSlow and Jiffy and provides an overview of optimizations that can be made to Drupal like enabling CSS/JS aggregation, leveraging a CDN, and putting JavaScript files at the bottom of pages. It also outlines challenges and potential solutions discussed in the author's bachelor thesis around CDN integration and relocating JavaScript.
Are you struggling to create a consistent user interface for your web app? Don't want to bring in too many expensive designers? Take a look at Bootstrap!
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comePromet Source
Grinnell College in Iowa had a website that wasn’t representing the school well, and an intranet system that had been hijacked by users to bypass the main site. When tasked with redesigning the site, Grinnell needed to differentiate itself from its peers, and bring users back. Grinnell boasts rigorous academics, an active campus, and fantastic facilities, but many schools can claim the same. One differentiator is that Grinnell celebrates the individual. Through its welcoming culture of self-governance and the ability to create your own curriculum, the college empowers students to carve their own way through the college experience. It is not the only school that allows a student to do this, though it is one of the few.
So we asked: how do we distinguish Grinnell's unique take on crafting an individual education from its peers? How do we show the activities and news happening on campus? How does Grinnell bring users back from the intranet? How do we make as many departments as possible happy with a full redesign? And lastly, how do we best use Drupal to make it all happen? We decided to demonstrate it with a website that allows users to customize their experience on the site. Learn how Grinnell College, Promet Source (the developers) and Rogue Element (the design firm) worked together to create a customizable website: how Rogue designed it, how Promet built it and how Grinnell planned to use it.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)darren_puscas
Slides from the Wordpress 101 workshop (morning session) at the Canadian Association of Labour Media Conference (CALM) in Hamilton, Ontario - May 26th, 2012
Are you struggling to create a consistent user interface for your web app? Don't want to bring in too many expensive designers? Take a look at Bootstrap!
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comePromet Source
Grinnell College in Iowa had a website that wasn’t representing the school well, and an intranet system that had been hijacked by users to bypass the main site. When tasked with redesigning the site, Grinnell needed to differentiate itself from its peers, and bring users back. Grinnell boasts rigorous academics, an active campus, and fantastic facilities, but many schools can claim the same. One differentiator is that Grinnell celebrates the individual. Through its welcoming culture of self-governance and the ability to create your own curriculum, the college empowers students to carve their own way through the college experience. It is not the only school that allows a student to do this, though it is one of the few.
So we asked: how do we distinguish Grinnell's unique take on crafting an individual education from its peers? How do we show the activities and news happening on campus? How does Grinnell bring users back from the intranet? How do we make as many departments as possible happy with a full redesign? And lastly, how do we best use Drupal to make it all happen? We decided to demonstrate it with a website that allows users to customize their experience on the site. Learn how Grinnell College, Promet Source (the developers) and Rogue Element (the design firm) worked together to create a customizable website: how Rogue designed it, how Promet built it and how Grinnell planned to use it.
Front End page speed performance improvements for DrupalAndy Kucharski
If you are a developer or business manager with responsibilities over your website, then check out this deck..
What will you learn?
The webinar, created by our Founder and CEO, Andy Kucharski, is a highly accessible, information-rich review on the ways Drupal site performance can be radically improved. Some of the main topics we will cover include:
What is slow site speed?
What tools to use to diagnose it.
Plus six key improvements to make Drupal “run fast!”
And if that’s not already enough, we will also share some best practices monitoring tips for making sure you know how the Drupal server is performing 24/7.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
Wordpress 101 presentation - Canadian Association of Labour Media (CALM)darren_puscas
Slides from the Wordpress 101 workshop (morning session) at the Canadian Association of Labour Media Conference (CALM) in Hamilton, Ontario - May 26th, 2012
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
HTML5 and CSS3: does now really mean now?Chris Mills
Code at http://people.opera.com/cmills/css3book/css3-html5-dnrmn.zip. The browser vendors love them! The browser fans and cutting edge designers are producing some really remarkable stuff, but what do HTML5 and CSS3 really mean for you, the pragmatic designer on the street? If you sidle up to one of those guys and whisper "but what about IE6 support", they are likely to slap you in the face, or run away with their hands clamped over their ears, yelling "la lala lala, I can't hear you." In this talk, Chris Mills will have a look at some of the new features of HTML5 and CSS3 - new semantics, video, media queries, rounded corners, web fonts, drop shadows and more. He will show real world examples, and then look at how they actually perform on those shady older browsers we are often called on to support. He will then look at strategies for providing support for those older browsers, including using JavaScript, fallbacks, and progressive enhancement.
I based my presention on the great "HTML5 for Web designers" by Jeremy Keith. Awesome and pragmatic book, the way I like it. Get your copy on: http://books.alistapart.com/products/html5-for-web-designers
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
In 2006 Simon wrote a successful book about learning CSS. Building the web wasn’t easy back then, but CSS was pretty basic. Simon also used to talk about systems a lot, but didn’t have many answers. Fast-forward to 2014 and everything has changed; that CSS book is both useless and wrong, and systems inform much of what we build. This talk will look at how the landscape changed for front-end designers, and how we must think more holistically about the scope of our projects. With practical examples he’ll explore the tools, methodologies and systems that reenergised him and helped make sense of the whole darned mess.
In this session Simon will share his considerable experience of managing projects; from the initial client meetings to getting sign-off on designs to finally going live, and all that comes inbetween.
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
Web Performance tuning presentation given at http://www.chippewavalleycodecamp.com/
Covers basic http flow, measuring performance, common changes to improve performance now, and several tools and techniques you can use now.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
HTML5 and CSS3: does now really mean now?Chris Mills
Code at http://people.opera.com/cmills/css3book/css3-html5-dnrmn.zip. The browser vendors love them! The browser fans and cutting edge designers are producing some really remarkable stuff, but what do HTML5 and CSS3 really mean for you, the pragmatic designer on the street? If you sidle up to one of those guys and whisper "but what about IE6 support", they are likely to slap you in the face, or run away with their hands clamped over their ears, yelling "la lala lala, I can't hear you." In this talk, Chris Mills will have a look at some of the new features of HTML5 and CSS3 - new semantics, video, media queries, rounded corners, web fonts, drop shadows and more. He will show real world examples, and then look at how they actually perform on those shady older browsers we are often called on to support. He will then look at strategies for providing support for those older browsers, including using JavaScript, fallbacks, and progressive enhancement.
I based my presention on the great "HTML5 for Web designers" by Jeremy Keith. Awesome and pragmatic book, the way I like it. Get your copy on: http://books.alistapart.com/products/html5-for-web-designers
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
In 2006 Simon wrote a successful book about learning CSS. Building the web wasn’t easy back then, but CSS was pretty basic. Simon also used to talk about systems a lot, but didn’t have many answers. Fast-forward to 2014 and everything has changed; that CSS book is both useless and wrong, and systems inform much of what we build. This talk will look at how the landscape changed for front-end designers, and how we must think more holistically about the scope of our projects. With practical examples he’ll explore the tools, methodologies and systems that reenergised him and helped make sense of the whole darned mess.
In this session Simon will share his considerable experience of managing projects; from the initial client meetings to getting sign-off on designs to finally going live, and all that comes inbetween.
An Overview of the Javascript Ecosystem in 2015. Slides from this talk given at San Diego Javascript on June 2: https://www.youtube.com/watch?v=CGkPsNyI07A
Drupal powers many small-to-medium websites, from personal blogs to company intranets. Drupal also powers big sites like The Economist and The White House. How are the big sites different from the small ones? What are the main issues to consider when adopting Drupal for the enterprise? What skillset do developers need to build them?
Web Performance tuning presentation given at http://www.chippewavalleycodecamp.com/
Covers basic http flow, measuring performance, common changes to improve performance now, and several tools and techniques you can use now.
My Site is slow - Drupal Camp London 2013hernanibf
Drupal is a powerful and flexible tool to create web applications without building everything from scratch. This ability can drive developers to build complex websites without understanding what is Drupal doing behind the scenes.
The majority of Drupal performance talks mostly focus in aspects like infrastructure changes, caching strategies or comparisons between modules and architectures. Unfortunately when performance problems occur, development teams also follow strategies to replace different aspects of the platform looking only to standard aspects like slow queries without understanding and profiling the real problem.
The majority of times it is fundamental to measure and analyze what is the application is actually doing to understand te real problems. Drupal is a platform used by million of websites worlwide and its performance can in most cases be compared after measured.
In Acquia we do dozens of performance assessments per year, and even in most clients we find the same problems, often we find situations that only can be detected when measured and analized when looking to a profiler report.
In this session, I will explain how to detect performance problems looking to simple data, from logs to profiler data and providing some nice targets that can be analyzed to understand what is causing the uncommon bad performance of a site.
How Not to Be Conned by Your Drupal Vendor!pixelonion
Despite the title, this presentation aims to shed some lights to both clients & vendors on how to execute acceptable Drupal projects, focusing on asking the 10 questions discussed in the slides.
A walkthrough of various application performance tuning tools and a good workflow for where to start, from a presentation at WindyCityRails 2011 in Chicago, IL.
See the video, and more Web and Ruby/Rails Performance info at www.RailsPerformance.com
-John McCaffrey
Squeeze Maximum Performance From Your Joomla WebsiteSiteGround.com
Basic and advanced tips and tricks to optimize your Joomla website in order to achieve maximum performance - a presentation by Tenko Nikolov for JoomlaDay Chicago 2012.
Presentation at the NCTech4Good conference in Chapel Hill, NC on April 15, 2011. The presentation covers upgrading to Drupal 7 from Drupal 6 (or another system), and covers best practices, recommendations. Update.php and migrate module are both discussed.
Our presentation on Israel Rails Conference 2012. Vitaly talking about rails performance, how to measure, what to improve and just as much important - what not to improve
This PPT gives information about:
1. Install and Uninstall Modules
2. Module Management
3. Use of Default Modules
4. Why use cms
5. drupal Structure
6. Module
Velocity NY 2013 - From Slow to Fast: Improving Performance on Intuit Website...Jay Hung
Convincing an organization that performance matters and is worth investing in is often a tough thing to sell. This was no different at Intuit, who operated many sites built in the pre “web standards” era. Then, one day, one test changed everything – an A/B comparison successfully demonstrated that faster page loads increased conversion and SEO. And the conversation quickly changed from “Not interested” to “How quickly can you make the rest of our pages faster?”
A performance team was formed, and optimization began across multiple properties in a phased approach with each release delivering incremental performance gains. As we iterated through the core performance principles, the team introduced additional techniques that led us to exceed our original performance goals. Techniques such as lazyloading, prefetching, smarter image optimization/spriting, and module rewrites enabled us to successfully shave off additional time.
This session will cover the steps that we took, lessons learned including what worked well or didn’t work well, as well as the performance improvements that were realized, and their impact on business metrics. Some of the topics include:
* How we went from 15s web pages to 2s web pages
* How combining CSS/JS files and image sprites had both positive as well as negative impact
* How lazy loading of resources and JavaScript rewrites improved our page render times (including our experiments with Control.js)
* How we addressed blocking as well as high-latency third-party components
* How we solved for issues/constraints arising from shared code across multiple sites
* How we optimized for user flows spanning multiple pages with positive results
* How automated benchmarking enabled us to continuously monitor our performance health
* How we succeeded in making “performance” a common theme among developers, marketers, and stakeholders
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJSSrijan Technologies
AngularJS is currently at the forefront of MVC (Model View Controller) frameworks for the web, and it makes it very simple to develop prototypes and web applications in it. But how do we ensure that the large scale applications we develop remain high performance, bug free and fast?
In this webinar, our speaker shared his learnings from developing various large scale AngularJS applications. He also shared how to create a maintainable project structure, and cover common performance bottlenecks and best practices to follow.
Watch complete webinar recording: http://youtu.be/b92Y77TExiA
The new Migrate module in Drupal 8 core is great for upgrading sites from Drupal 6 to Drupal 8. But it's useful for a lot more than just that! Migrate adds the power of any external tool to your content workflow.
Not every client is accustomed to using Drupal. Some clients might like Google Spreadsheets; others prefer Markdown files in version control. Using Migrate, you can let your clients use their preferred content building tools—even before you have a Drupal site ready for them! I'll talk about my experiences with several different Migrate-based workflows that we've used at Evolving Web.
There's already information out there about building migrations, but most of it focuses on very limited use cases: direct upgrades, or simple nodes. I'll cover many other bits and pieces you need for real-life migration projects, including:
* Hierarchical menus
* Paths and redirects
* Multilingual data
* Files and images
* Merging multiple migrations
* Writing custom migration sources and transformations
* Figuring out why your migration isn't working
Attendees with some PHP experience will get the most out of this talk—but many parts will be interesting to site builders and project managers as well.
Similar to Fosdem 2009 – improving drupal's page loading performance (20)
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
3. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
4. Overview
• Reasons
• Why does it matter?
• What is it?
• Why is it important to Drupal?
• Toolbox
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
5. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
6. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion
• Hammerhead
• YSlow
• Jiffy
7. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion • Bachelor thesis
• Hammerhead • JS at the bottom
• YSlow • CDN integration
• Jiffy
8. Overview
• Reasons • Drupal + YSlow
• Why does it matter? • The Good
• What is it? • The Easy Fixes
• Why is it important to Drupal? • The Hard Problems
• Toolbox • Other optimizations
• Cuzillion • Bachelor thesis
• Hammerhead • JS at the bottom
• YSlow • CDN integration
• Jiffy • Questions?
9. Why does it matter?
• Users care about performance!
• Amazon: 100 ms of extra load time caused a 1% drop in sales
• Google: 500 ms of extra load time caused 20% fewer searches
• Fast web sites are rewarded, slow web sites are punished
source: http://www.slideshare.net/stubbornella/designing-fast-websites-presentation
10. What is it?
• End user response time HTML Components
• 10-20%: the HTML document
(mix of back-end + front-end)
90%
• 80-90%: the components in the page
(front-end only)
• More effective to focus on front-end
10%
performance!
source: http://stevesouders.com/hpws/
11. Terminology: page loading performance
page loading or front-end performance: the time it takes to
load a web page and all its components (CSS, JS, images …)
includes
page rendering or back-end performance: the time the server
needs to render a web page
13. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
14. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
• Drupal’s numbers
• Big, high-traffic web sites
• Popular (>125,000 sites): optimization affects many sites
15. Why is it important to Drupal?
• The Drupal Experience: happier users (and developers)
• Drupal’s numbers
• Big, high-traffic web sites
• Popular (>125,000 sites): optimization affects many sites
• Drupal is international (thanks to i18n/L10n)
• International audiences: high network latencies
• Developing countries: low-speed connections
17. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
18. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
3. YSlow: while improving page loading performance (detailed profiling)
19. Toolbox
1. Cuzillion: for understanding browser behavior better (learning)
2. Hammerhead: while developing (basic profiling/awareness)
3. YSlow: while improving page loading performance (detailed profiling)
4. Jiffy: for measuring real-world page loading performance (big scale profiling)
20. Toolbox: 1. Cuzillion
Tool for quickly constructing web pages to see how components interact
21.
22.
23.
24.
25. Toolbox: 2. Hammerhead
• Firebug extension
• Makes it easier to stay aware of page loading performance while developing
26. Toolbox: 3. YSlow
Checks how well a page implements 14 basic rules (actually 34)
27. Toolbox: 4. Jiffy
• Raison d’être: 3rd-party • Jiffy, on the other hand:
performance monitoring
systems (Gomez, Keynote):
• Limited number of • Can measure every page load if desired
measurement points
• Runs in the browser: it’s JS code
• Real-world browsers
• No real-world browsers
used
• Can measure anything
• Paid
• Open source!
Jiffy.mark("slow3PStart");
jQuery.getScript(‘http://slowsite.com/slow.js’);
Jiffy.measure("slow3PDone", "slow3PStart");
28. Terminology: CDN
A content delivery network (CDN) is a collection of web servers distributed
across multiple locations to deliver content more efficiently to users. The server
selected for delivering content to a specific user is typically based on a
measure of network proximity.
source: http://developer.yahoo.com/performance/rules.html#cdn
30. Drupal + YSlow: things to keep in mind
• YSlow score does not necessarily reflect real-world performance, e.g.:
• Using a CDN, but a slow or non-global one
31. Drupal + YSlow: things to keep in mind
• YSlow score does not necessarily reflect real-world performance, e.g.:
• Using a CDN, but a slow or non-global one
• Striving to a perfect YSlow score is good
• Especially in Drupal core: affects many sites and developers
• But don’t forget to check real-world performance!
33. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
34. Drupal + YSlow: The Good
• Conform to YSlow rules through:
• Doing nothing :)
• Very simple Drupal core configuration changes
35. Drupal + YSlow: The Good
• Rule 1: Make fewer HTTP requests
• Remarks
• Problem: “dumb bundling” of CSS/JS files (see later)
• How to enable?
• Enable at admin/settings/performance
38. Drupal + YSlow: The Good
• Rule 3: Add an Expires header
• Rule 4: Gzip components
• Rule 5: Put CSS at the top
39. Drupal + YSlow: The Good
• Rule 6: Put JS at the bottom
• Rule 7: Avoid CSS expressions
• Rule 8: Make JS and CSS external
40. Drupal + YSlow: The Good
• Rule 9: Reduce DNS lookups
• Remarks
• External JS (e.g. Google Analytics) should be cached on your server
• How to enable?
• Proper setting in Google Analytics module
• Hacking other modules?
41.
42. Drupal + YSlow: The Good
• Rule 11: Avoid Redirects
• Rule 12: Remove Duplicate Scripts
43. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
44. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
45. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
46. Drupal + YSlow: The Easy Fixes
• Conform to YSlow rules through:
• Modules
• Drupal core/module configuration
• Web server configuration
47. Drupal + YSlow: The Easy Fixes
• Rule 1: Make fewer HTTP requests
• How to fix?
• Intelligent bundling of CSS/JS files: Support file Cache module (Drupal 5
only)
48. Drupal + YSlow: The Easy Fixes
• Rule 4: Gzip components
• How to fix?
• Apache 2: edit your .htacces/httpd.conf
AddOutputFilterByType DEFLATE text/css application/x-javascript
• Use a CDN
• Drupal 7: core patch?
49. Drupal + YSlow: The Easy Fixes
• Rule 10: Minify JavaScript
• Remarks
• Use JSMIN, not Packer!
• How to fix?
• Javascript Aggregator module (Drupal 5 & 6)
51. Drupal + YSlow: The Hard Problems
• Rule 2: Use a CDN
• The Tricky Thing
• Far future Expires headers are more effective, but require unique filenames
• How to fix?
• Drupal core patch: file_url()
• CDN integration module
52. Drupal + YSlow: The Hard Problems
• Rule 6: Put JS at the bottom
• The Tricky Thing
• JS that affects the style of a web page cannot be at the bottom
• How to fix?
• Manual hacks :(
• Drupal core patch necessary to change default location (see later)
53. Drupal + YSlow: The Hard Problems
• Rule 14: Make AJAX Cacheable
• Remarks
• Possible today, but structured approach would be better
• How to fix?
• Drupal 7 will support multiple rendering formats!
• Gzip-ability should be a follow-up patch
54. Drupal + YSlow: recap
• Many things are already good out-of-the-box
• Easy fixes
• Intelligent bundling of CSS/JS
• Gzipping components
• JS minification
• Hard problems
• Using a CDN
• Putting JS at the bottom
• Make AJAX cacheable
55. Other optimizations
• Image optimization! (PNG-8, PNG instead of GIF, progressive JPEG …)
• Prefetching (part of the HTML5 specification)
<link rel="prefetch" href="/images/big.jpeg">
• The 20 new rules (post- and pre-load components, flush the buffer early …)
•…
56. Bachelor thesis
I’ll solve 2 of the 3 hard problems: CDN integration and JS at the bottom.
Hasselt University has allowed me to work in an open source fashion and all of
my work will therefor be available for everybody. Thanks!
My promotor will be Prof. dr. Wim Lamotte and I will be guided by Stijn Agten
and Maarten Wijnants.
57. Bachelor thesis: JS at the bottom
• Not enough work/too easy for an entire bachelor thesis
• Will be a core patch
• Change the default location to “footer”
• Clear guidelines on how to separate “style JS” from “non-style JS”
58. Bachelor thesis: CDN integration
• Plenty of work for a bachelor thesis
• 3 parts
1. Daemon for synchronization, written in Python (back-end)
2. Drupal core patch to unify generation of file URLs and allow to alter them
3. Drupal module for administration and reporting (front-end)
59. Bachelor thesis: CDN integration
• Daemon goals
• Ability to use any CDN transparently (FTP, rsync, Amazon S3 …)
• Ability to mix CDNs and static file servers
• Post-processing: image optimization, CSS/JS compression … transcoding?
• Detect files instantly through file system event monitor (inotify on Linux)
• Other use cases: backup system, automatically sharing files within LAN …
60. Bachelor thesis: collaborating companies
The following Drupal companies The following CDN companies
will be evaluating my work and will be providing their services
giving feedback. for free for testing purposes.
A big thanks
to all of them!
61. Questions?
Relevant links:
• This presentation – along with relevant links – can be found online at
http://wimleers.com/talk/fosdem-2009
• You can track my bachelor thesis’ progress at
http://wimleers.com/tags/bachelor-thesis
• Questions & feedback are welcome! Contact me via
http://wimleers.com/contact
Editor's Notes
Student at Hasselt University
Freelance Drupal developer
Intern at Mollom
Popularity numbers: d.o usage statistics
Conclusion: important for:
- Drupal project growth
- More Happy People
Popularity numbers: d.o usage statistics
Conclusion: important for:
- Drupal project growth
- More Happy People
Popularity numbers: d.o usage statistics
Conclusion: important for:
- Drupal project growth
- More Happy People
Create a simple test: the effect of an inline script between 2 images in different browsers.
Webkit: executes script, then displays images
Firefox: displays first image, executes script, displays second image
Notice how both images finish loading at the same time.
Notice how the second image finishes loading about 2 seconds after the first one.
I&#x2019;ll only cover the 14 that were first published
- Apache logs => database (script on cron) => reports
- Mark (start timing) & measure (measure elapsed time) approach
- June 2008
- dumb bundling reduces the effectiveness of aggregation
script downloading? -> no other downloads are started, not even from other domain names
== blocks parallel downloads
- Packer:
* typically higher compression ratio, but:
* adds a decompression delay on every page load!
script downloading? -> no other downloads are started, not even from other domain names
== blocks parallel downloads